package com.wwj.auction.login.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wwj.auction.login.entity.UserAddress;
import com.wwj.auction.login.entity.UserInfo;
import com.wwj.auction.login.entity.vo.SimpleUserInfoVo;
import com.wwj.auction.login.entity.vo.UserInfoVo;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wwj
 * @since 2021-08-10
 */
public interface UserInfoService extends IService<UserInfo> {

    /**
     * 判断当前手机号是否已经注册
     *
     * @param phone 手机号
     * @return true：已经注册  false：尚未注册
     */
    boolean isRegistered(String phone);

    /**
     * 实现用户注册
     *
     * @param userInfo
     */
    void register(UserInfo userInfo);

    /**
     * 实现用户登录
     * 校验用户输入的手机号和密码是否正确
     *
     * @param userInfo
     */
    UserInfo checkUser(UserInfo userInfo);

    /**
     * 从前端传递过来的级联编号中找出省、市、县信息，并封装成实体返回
     *
     * @param addressList 该地址信息是由级联选择器得到的值，一共有三个编号，分别代表了省、市、县
     * @return
     */
    UserAddress findAddressInfo(List<Integer> addressList);

    /**
     * 更新用户个人信息
     *
     * @param userInfoVo
     */
    void updateUserInfo(UserInfoVo userInfoVo, UserAddress userAddress);

    /**
     * 获取用户数据，提供前端展示
     *
     * @param userId
     * @return
     */
    SimpleUserInfoVo getUserInfo(Long userId);

    /**
     * 更新当前用户的登录时间
     */
    void updateLoginTime(String phone);

    /**
     * 获取用户类型
     *
     * @param phone
     * @return
     */
    Integer getUserType(String phone);

    /**
     * 获取店铺状态，查询店铺是否被查封
     *
     * @param userId
     * @return
     */
    Integer getStoreStatus(Long userId);
}
